package com.otv.cliente.service;

import java.util.List;
import org.springframework.transaction.annotation.Transactional;
import com.otv.cliente.dao.IClienteDAO;
import com.otv.model.Cliente;


/**
 * Class ClienteService.
 */
@Transactional(readOnly = true)
public class ClienteService implements IClienteService {


	/** El/la cliente dao. */
	IClienteDAO clienteDAO;
	

	
	
	/**
	 * Asigna el/la cliente dao.
	 *
	 * @param clienteDAO un(a) nuevo(a) cliente dao
	 */
	public void setClienteDAO(IClienteDAO clienteDAO) {
		this.clienteDAO = clienteDAO;
	}



	@Transactional(readOnly = false)
	@Override
	public void addCliente(Cliente cliente) {
		getClienteDAO().addCliente(cliente);
	}



	@Transactional(readOnly = false)
	@Override
	public void updateCliente(Cliente cliente) {
		getClienteDAO().updateCliente(cliente);
	}


	@Transactional(readOnly = false)
	@Override
	public void deleteCliente(Cliente cliente) {
		getClienteDAO().deleteCliente(cliente);
	}



	@Override
	public Cliente getClienteById(int id) {
		return getClienteDAO().getClienteById(id);
	}



	@Override
	public List<Cliente> getClientes() {
		return getClienteDAO().getClientes();
	}


	/**
	 * Devuelve un(a) cliente dao.
	 *
	 * @return El/la cliente dao
	 */
	public IClienteDAO getClienteDAO() {
		return clienteDAO;
	}

}
